package com.example.smartpark.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.example.smartpark.dto.UserDTO;
import com.example.smartpark.dto.UserQueryDTO;

/**
 * 用户管理服务接口
 */
public interface UserAdminService {

    /**
     * 获取用户列表（分页）
     *
     * @param queryDTO 查询条件
     * @return 用户列表
     */
    IPage<UserDTO> getUserPage(UserQueryDTO queryDTO);

    /**
     * 获取用户详情
     *
     * @param id 用户ID
     * @return 用户详情
     */
    UserDTO getUserById(Integer id);

    /**
     * 添加用户
     *
     * @param userDTO 用户信息
     * @return 添加后的用户
     */
    UserDTO createUser(UserDTO userDTO);

    /**
     * 更新用户
     *
     * @param id      用户ID
     * @param userDTO 用户信息
     * @return 更新后的用户
     */
    UserDTO updateUser(Integer id, UserDTO userDTO);

    /**
     * 删除用户
     *
     * @param id 用户ID
     * @return 是否成功
     */
    boolean deleteUser(Integer id);

    /**
     * 更改用户状态
     *
     * @param id     用户ID
     * @param status 状态（0-禁用，1-启用）
     * @return 更新后的用户
     */
    UserDTO changeUserStatus(Integer id, Integer status);

    /**
     * 重置用户密码
     *
     * @param id 用户ID
     * @return 是否成功
     */
    boolean resetUserPassword(Integer id);
} 